﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using DAO;

namespace Negocio
{
    public class BoletaRules
    {
        public void GuardarBoleta(BoletaEntity boleta)
        {
            if (boleta != null)
            {
                var dao = new BoletaDAO();
                if (boleta.Id > 0)
                    dao.Update(boleta);
                else
                    boleta.Id = dao.Insert(boleta);
            }
        }

        public List<BoletaEntity> SeleccionarBoletaPorFiltro(int? id, string usuario, DateTime? fechaDesde, DateTime? fechaHasta, int? etapaId)
        {

            var dao = new BoletaDAO();
            var lista = dao.SelectAll();
            var listaFiltrada = (from b in lista
                                 where ((!id.HasValue || b.Id == id.Value) &&
                                        (string.IsNullOrEmpty(usuario) || b.Usuario.Login == usuario) &&
                                        (!fechaDesde.HasValue || b.FechaCreacion >= fechaDesde.Value) &&
                                        (!fechaHasta.HasValue || b.FechaCreacion <= fechaHasta.Value) &&                                        
                                        (!etapaId.HasValue || (etapaId.HasValue && b.Etapa.Id == etapaId.Value))
                                       )
                                 select b).ToList<BoletaEntity>();

            return listaFiltrada;
        }
    }
}
